Far Cry Tweak Guide

[Page 9] Advanced Tweaking (Pt.3)



System.cfg, Game.cfg & Devmode.lua

All of the game's major settings are held in the System.cfg and Game.cfg files in your \Ubisoft\Crytek\Far Cry directory. These files are read, and written to, by Far Cry each time the game launches and also when any of the game's settings are changed in-game, or by the Far Cry Configuration Tool, and sometimes when certain settings are changed in the Console.


However, the personal settings for your Profile are also stored in the \Ubisoft\Crytek\Far Cry\Profiles\Player directory under the filenames [profilename]_system.cfg and [profilename]_game.cfg. Any changes you make to the general .cfg settings while using a particular profile will be transferred to the profile-specific .cfg files as well. Whenever you switch profiles, Far Cry then transfers the settings from the relevant profile's .cfg files to the global System.cfg and Game.cfg files, making the game execute them the next time the game starts up. Keep this in mind, so that when you switch profiles you don't wonder why you've lost some of your tweaks. Try to stick with one profile if you can.


Below are descriptions of the Game.cfg and System.cfg files, and the mysterious Devmode.lua file which together control most of the game's settings.


Guide Image
Game.cfg

The Game.cfg file contains all your control key bindings and some important mouse settings. You should change all your major control bindings in the Control Options screen under the main Options (See In-Game Settings section). You can also edit them here if you wish, however while you can edit the existing settings in the file, if you add any additional lines to the file they will be deleted the next time the game starts. The entire file is overwritten and created from scratch each time Far Cry is executed. I am currently unaware of how to make additional key bindings "stick" in Far Cry, but I will update the guide when I know how.



System.cfg

The System.cfg file contains all your major game settings (aside from key bindings). It includes the types of settings found in the Far Cry Configuration Tool, the major in-game settings, as well a bunch of other video and audio settings. While there are many commands you can change in the System.cfg file, this section only covers the major commands and what they do, and also will not cover again the settings and commands already explained in detail in the In-Game Settings and Far Cry Configuration Tool sections above. If you wish to change those settings, I strongly recommend you use the above methods to do so, and only edit System.cfg to change settings cannot be accessed in any other way. Note that just like Game.cfg, putting additional lines in the System.cfg file will not work.


Below are the major commands which can be edited in System.cfg, and what each will do:


cl_weapon_fx [0,1,2] - 0=Low, 1=Medium, 2=High. Controls the complexity of weapon firing effects. The higher the setting the more realistic weapons fire is, but the lower your FPS when firing or observing weapons fire.


game_GliderBackImpulse = "2.5f"
game_GliderDamping = "0.15f"
game_GliderGravity = "-0.1f"
game_GliderStartGravity = "-0.8f"


Changing the values here alters the glider's flight characteristics. Experiment with various values.


r_DisplayInfo [0,1] - 0=Off, 1=On. The same as the Console command, it displays a range of information including number of polygons drawn and frames per second (FPS) at the top right of screen. Changing this setting affects whether the game boots up with this information displayed by default or not.


r_Driver [OpenGL, Direct3D9] - OpenGL=Use OpenGL renderer. Direct3D9=Use default DirectX9.0 renderer. Setting the renderer to OpenGL may resolve problems and improve performance for some users, especially Nvidia graphics card owners. If you experience problems revert back to the default Direct3D9 renderer for optimal stability/compatibility.


r_Height [Pixelheight] - Determines the height of the screen resolution in pixels.
r_Width [Pixelwidth] - Determines the width of the screen resolution in pixels.


Changing these two settings will allow you to run in resolutions of less than 800 width and 600 height (the officially supported minimum resolution for Far Cry). Be very careful to select standard values supported by your monitor such as 640 x 480.


r_EnhanceImage [0,1] - 0=Off, 1=On. When enabled, allows image post-processing enhancement. This can improve image quality, but reduce performance. Disable for an FPS boost if you don't mind the image quality degredation.


r_EnhanceImageAmount [0.0-1.0] - Determines the amount of image enhancement, if EnhanceImage is enabled (see above). The higher the value the better the quality of image processing used, but the less your FPS.


r_FSAA_samples [1-8] - Determines the level of Full Screen Anti Aliasing (FSAA) used, if FSAA is enabled. The higher the level of FSAA, the cleaner and less jagged the image but the significantly lower your FPS. Higher modes of FSAA may not be supported on all graphics cards, so be careful. For example setting this to 8 on an ATI card will result in a crash.


r_SelfShadow [0,1] - 0=Off, 1=On. Unclear on what this setting does. Doesn't appear to affect shadows cast by player.


r_VolumetricFog [0,1] - Determines whether Volumetric Fog is used in areas requiring fog effects. Disabling this setting will use a lesser quality fog effect which is far less realistic, but may resolve problems and improve FPS in such areas.


s_DopplerValue [0.0-?] - If the Doppler effect is enabled, this number determines the strength of the doppler effect, which is changing pitch as sound sources move rapidly around you. Experiment with various values, with FPS impact likely to be negligible.


s_DummySound [0,1] - 0=Off 1=On. Enabling this setting turns all sound off.


s_MaxHWChannels [0-64] - Set the maximum number of hardware sound channels (0=Software sound) usable by Far Cry. If you know your hardware supports more hardware channels (e.g. 64 channels on Audigy1/Audigy2 cards) then attempt to increase this value for an increase in audio quality but a decrease in FPS.


s_MaxSoundDist [0-?] - Determines the maximum distance (in meters) at which sounds are heard by the character. The higher the value, the lower your FPS.


s_MinHWChannels [0-64] - Determines the minimum number of hardware sound channels required before Far Cry will allow Hardware Sound and effects like EAX. If you are having problems with enabling hardware sound on a sound card, try lowering this value and see if it helps. May reduce performance if reduced.


s_SampleRate [11025-44100] - Determines the sampling rate at which Far Cry audio (music and sound effects) are played back. Lowering this setting will improve performance but reduce audio quality.


sv_maxbitspersecond = "30000"
sv_maxrate = "30000"
sv_maxrate_lan = "100000"


See the Console Commands section for usage of these multiplayer server commands.



Devmode.lua

There is one more configuration file we can edit in Far Cry, and it's called Devmode.lua. This file contains the Developer Mode (Devmode) settings, but to access it first you must go to your Far Cry game icon, right click on it and select Properties. In the Target box, insert a space after the last " mark and type "-Devmode" (without quotes). It should look something like this:


"C:\Program Files\UBISOFT\Crytek\Far Cry\Bin32\FarCry.exe" -Devmode


Click Apply and OK to close the Icon Properties box. The next time you run Far Cry from this icon it will begin in Developer Mode, which is essentially a cheat mode. There are some nifty commands and functions available in Devmode, and the ones which are accessible in the Devmode.lua file are detailed here. Others are detailed in the Console Commands section below. Remember to create a backup of Devmode.lua before making any changes to it.


Here is a list of Developer Mode commands in Devmode.lua and what they do. Performance impacts are not discussed since these are not performance-related commands or tweaks:


cl_display_hud [0,1] - 0=Off, 1=On. If turned off, this setting removes all traces of the Heads Up Display (HUD) on the screen. This can be useful for taking screenshots for example.


cl_drunken_cam [0,1] - 0=Off, 1=On. If turned on, this makes the view look as though the player is drunk. I don't use this tweak, and instead prefer to do it the old-fashioned way with 15 beers.


ThirdPersonView [0,1] - 0=Off, 1=On. If turned on, Jack will be visible on screen in the 3rd person view. You can control him the same as usual, and also use the F1 button (default binding - see below) to switch between 1st and 3rd person views.



There are already several working key bindings by default in Devmode. You can use the following commands at any time while in Devmode:


F1 - Toggle between 1st and 3rd person views.
F2 - Skip to the nearest save point.
F3 - Toggle Old Designer Mode (Fly mode).
F4 - Toggle New Designer Mode (Fly mode).
F8 - Toggle Debugger.
F11 - Toggle AI Information on screen.
F12 - Take screenshot.
P - Give player all weapons.
O - Give player all ammunition.


However if you look around the Devmode.lua file, you will see several key bindings which have -- marks in front of them. This means they won't be read by the game engine and loaded up when Far Cry starts in Devmode. By removing the -- in front of these bindings you can enable them, but be very careful. Some of them conflict with existing key bindings or don't work, or cause problems. For example, here are two functions which are assigned to F11, but only the first one is currently enabled, as the second one has -- marks in front of it:


Input:BindCommandToKey("#ToggleAIInfo()","f11",1);


--Input:BindCommandToKey("#ToggleScreenshotMode()","f11",1);


To switch them around, insert -- in front of the first line, and remove the -- from the second line. Save the Devmode.lua file and relaunch Far Cry. You can now use F11 in Devmode to toggle the special "Screenshot mode", which if turned on, removes the HUD and crosshair, as well as any info displays on screen, and the enemy AI also no longer sees or hears you. This is perfect for wandering around the game and taking screenshots (using F12), especially when combined with F4 (Fly mode). Press F11 again to return to normal mode at any time.


So unlike the Game.cfg and System.cfg files you can not only edit Devmode.lua, but also insert your own new keybindings with various commands, but once again be careful. See the Console Commands section below for some useful Devmode-only console commands which you can use in the Devmode console, or insert into Devmode.lua. Devmode is great for experimenting, but I take no responsibility if you ruin your savegames for example, so backup everything before playing around. And before you ask, your savegames can be found under the \UBISOFT\Crytek\Far Cry\Profiles\player\[Profilename]\Savegames\ directory.



The next section covers some useful Console Commands which you can use both in normal mode and Developer mode